/*
 * Excepciones.h
 *
 *  Created on: 11/04/2010
 *      Author: administrador
 */

#ifndef EXCEPCIONES_H_
#define EXCEPCIONES_H_

#include <iostream>
#include <string.h>

using namespace std;

class OverflowException {

private:

	int idNodo;

public:

	OverflowException(){};
	OverflowException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
//		cout << "El Nodo de id: " << this -> idNodo << " está en Overflow. Se debe reorganizar la estructura." << endl;
	}

};

class UnderflowException {

private:

	int idNodo;

public:

	UnderflowException(){};
	UnderflowException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
//		cout << "El Nodo: " << this -> idNodo << " está en Underflow. Se debe reorganizar la estructura." << endl;
	}

};

class ElementoExistenteException {

private:

	Clave claveElemento;

public:

	ElementoExistenteException(){};
	ElementoExistenteException(Clave claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	Clave getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
//		cout << "El Elemento de clave: " << this->claveElemento.getClave() << " ya se encuentra dado de alta previamente." << endl;
	}

};

class ElementoInexistenteException {

private:

	Clave claveElemento;

public:

	ElementoInexistenteException(){};
	ElementoInexistenteException(Clave claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	Clave getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
//		cout << "El Elemento: " << this->claveElemento.getClave() << " no existe o no se ha dado de alta previamente." << endl;
	}

};

class NodoVacioException {

private:

	int idNodo;

public:

	NodoVacioException(){};
	NodoVacioException(int idNodo)
	{
		this -> idNodo = idNodo;
	}

	int getIdNodo()
	{
		return this -> idNodo;
	}

	void mostrarError()
	{
//		cout << "El Nodo: " << this -> idNodo << " esta vacio." << endl;
	}

};

class ElementoUltimoException {

private:

	Clave claveElemento;

public:

	ElementoUltimoException(){};
	ElementoUltimoException(Clave claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	Clave getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
//		cout << "El Elemento de clave: " << this->claveElemento.getClave() << " ya se encuentra dado de alta previamente." << endl;
	}

};

class ElementoPrimeroException {

private:

	Clave claveElemento;

public:

	ElementoPrimeroException(){};
	ElementoPrimeroException(Clave claveElemento)
	{
		this -> claveElemento = claveElemento;
	}

	Clave getElemento()
	{
		return this -> claveElemento;
	}

	void mostrarError()
	{
//		cout << "El Elemento de clave: " << this->claveElemento.getClave() << " ya se encuentra dado de alta previamente." << endl;
	}

};

#endif /* EXCEPCIONES_H_ */
